package top.continew.ai.util.parse;

import org.springframework.ai.document.Document;
import org.springframework.ai.reader.ExtractedTextFormatter;
import org.springframework.ai.reader.pdf.PagePdfDocumentReader;
import org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig;
import org.springframework.core.io.FileSystemResource;

import java.util.List;

/**
 * pdf页面解析
 *
 * @Author： Lonni
 * @Date： 2025/8/21  15:51
 */
public class PagePdfParse implements BaseParse{
    /**
     * 解析并切分文件
     *
     * @param filePath
     * @param fileName
     * @return
     */
    @Override
    public List<Document> renderDocment(String filePath, String fileName) {
        FileSystemResource resource = new FileSystemResource(filePath);
        PagePdfDocumentReader pdfDocumentReader = new PagePdfDocumentReader(
                resource,
                PdfDocumentReaderConfig.builder()
                        //  设置 页面顶部边距（0，表示不留边）
                        .withPageTopMargin(0)
                        //  设置 页面底部边距（0，表示不留边）
                        .withPageBottomMargin(0)
                        // 配置 文本提取格式：
                        .withPageExtractedTextFormatter(
                                ExtractedTextFormatter.builder()
                                        // 不删除任何顶部文本行。
                                        .withNumberOfTopTextLinesToDelete(0)
                                        // 还有很多配置
                                        .build())
                        // 每个 Document 只包含 1 页。
                        .withPagesPerDocument(1)
                        .build());
        List<Document> documents = pdfDocumentReader.read();
        return documents;
    }
}
